/**
 * 文件名：@EqualtoValidator.java <br/>
 * 包名：cn.efunbox.afw.core.validation <br/>
 * 项目名：afw-core <br/>
 * @author xtwin <br/>
 */
package cn.efunbox.afw.core.validation;

import cn.efunbox.afw.core.exception.ValidationException;
import cn.efunbox.afw.core.mvc.context.Context;

/**
 * 类名：EqualtoValidator  <br />
 *
 * 功能：值一致性校验
 *
 * @author xtwin <br />
 * 创建时间：2015年12月2日 下午4:01:37  <br />
 * @version 2015年12月2日
 */
public class EqualtoValidator extends AbstractValidator {

	/**
	 * 构造方法
	 */
	public EqualtoValidator() {
		super("validation.error.equalto");
	}

	/**
	 * 功能: <br/>
	 * 
	 * 重写：xtwin <br/>
	 * 
	 * @version ：2015年12月2日 下午4:02:07<br/>
	 * 
	 * @param field
	 * @param value
	 * @param message
	 * @param config
	 * @throws Exception <br/>
	 * @see cn.efunbox.afw.core.validation.AbstractValidator#doValidate(cn.efunbox.afw.core.mvc.context.Context, java.lang.String, java.lang.Object, java.lang.String, java.lang.Object)
	 */
	@Override
	protected void doValidate(Context context, String field, Object value, String message, Object config) throws Exception {
		//Object value_02 = ((HttpServletRequest) FWContext.getValue("HTTP_REQUEST")).getParameter((String) config);
		Object targetValue = context.getValue((String) config);
		
		if (value != targetValue && (null != value && ! value.equals(targetValue))) {
			 // 报错
			if (null != code) {
				throw new ValidationException(null != message ? message : this.message, code, new Object[] { field, config });
			} else {
				throw new ValidationException(null != message ? message : this.message, new Object[] { field, config });
			}
		}
	}
}
